package com.senlingspace.system.mapper;

import com.senlingspace.system.domain.SlkjOrderSplitSnapshot;
import com.senlingspace.system.domain.vo.TicketIncomeVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单分账快照
 *
 * @author lebronjames
 * @date 2024/08/01
 */
public interface SlkjOrderSplitSnapshotMapper {

    /**
     * 根据主键查询
     *
     * @param id
     * @return {@link SlkjOrderSplitSnapshot }
     */
    SlkjOrderSplitSnapshot selectById(Long id);

    /**
     * 根据订单ID查询
     *
     * @param orderId
     * @return {@link List }<{@link SlkjOrderSplitSnapshot }>
     */
    List<SlkjOrderSplitSnapshot> selectByOrderId(Long orderId);

    /**
     * 根据订单ID集合查询
     *
     * @param orderIds
     * @return {@link List }<{@link SlkjOrderSplitSnapshot }>
     */
    List<SlkjOrderSplitSnapshot> selectByOrderIds(@Param("orderIds") List<Long> orderIds);

    /**
     * 新增
     *
     * @param slkjOrderSplitSnapshot
     * @return int
     */
    int insert(SlkjOrderSplitSnapshot slkjOrderSplitSnapshot);

    /**
     * 修改
     *
     * @param slkjOrderSplitSnapshot
     * @return int
     */
    int update(SlkjOrderSplitSnapshot slkjOrderSplitSnapshot);

    /**
     * 批量新增
     *
     * @param splitSnapshots
     * @return int
     */
    int batchInsert(@Param("splitSnapshots") List<SlkjOrderSplitSnapshot> splitSnapshots);

    /**
     * 批量修改分账金额
     *
     * @param splitSnapshots
     * @return int
     */
    int batchUpdateProfitShareAmount(@Param("splitSnapshots") List<SlkjOrderSplitSnapshot> splitSnapshots);
}
